﻿using System;
using OnlineFamilyCalendar.Model;
using OnlineFamilyCalendar.Common.Security;

namespace OnlineFamilyCalendar.Service
{
    public interface IFamilyMemberService
    {
        // <summary>
        // Authenticates the user
        // </summary>
        OnlineFamilyCalendarIdentity AuthenticateFamilyMember(string loginName, string password);

        /// <summary>
        /// Registers a new user
        /// </summary>
        string RegisterNewFamilyMember(string loginName, string password, string emailAddress);

        /// <summary>
        /// Confirms the authentication of a new user
        /// </summary>
        /// <param name="cypherFamilyMemberIdentifier">encrypted identifier of the family member</param>
        void ActivateFamilyMember(string cypherFamilyMemberIdentifier);

        /// <summary>
        /// Deletes a FamilyMember
        /// </summary>
        /// <param name="familyMemberId">Identifier of the family member</param>
        void DeleteFamilyMember(Guid familyMemberId);
    }
}
